50 POKE -16299,0: POKE 230,64: POKE 0,P: CALL ML +12
60 P = PEEK(0): IF P = 1 THEN GOSUB 4000: GOTO 50
65 HGR : POKE -16302,0
70 IF P = 2 THEN POP :QT = 0: GOTO 1040
71 IF NOT P THEN RETURN
75 RETURN
90 VTAB 24: HTAB 1: PRINT " Press ESC to quit, '?' for help. ": RETURN
99 REM show and draw on page 1
100 POKE -16300,0: POKE 230,32: RETURN
600 REM PANACEA INPUT ANYTHING
601 FOR I = 0 TO LEN(IN$):IN$(I) = MID$ (IN$,I +1,1): PRINT IN$(I);: NEXT :T$ = IN$
602 FOR IN = 11 TO LEN(IN$) STEP -1:IN$(IN) = " ": NEXT :IN = IN +1
620 POKE 50,63 +192 *( PEEK(50) = 63): PRINT IN$(IN) CHR$(8);:T = PEEK(49152): IF T <128 THEN 620
630 NORMAL : PRINT IN$(IN) CHR$(8);:T = T -128: POKE 49168,0: IF T >31 AND T <127 THEN IN$(IN) = CHR$(T -32 *(T >96 AND T <123)): PRINT IN$(IN);:IN = IN +1: IF IN = 11 THEN IN = 10: PRINT CHR$(8);
640 IF (T = 8 OR T = 4 OR T = 127) AND (IN >0) THEN IN$(IN) = " ":IN = IN -1: PRINT " " CHR$(8) CHR$(8);
650 IF T = 27 THEN IN$ = T$: RETURN
660 ON T < >13 GOTO 620:IN$ = "": FOR I = 0 TO IN:IN$ = IN$ +IN$(I): NEXT : IF IN = 0 THEN IN$ = "": RETURN
670 IN$ = LEFT$(IN$, LEN(IN$) -1)
672 IF LEFT$(IN$,1) = " " AND LEN(IN$) >1 THEN IN$ = RIGHT$(IN$, LEN(IN$) -1): GOTO 672
675 IF RIGHT$(IN$,1) = " " AND LEN(IN$) >1 THEN IN$ = LEFT$(IN$, LEN(IN$) -1): GOTO 675
700 RETURN
999 REM main
1000 DIM HS$(5,5),HS(5,5),MS$(2),NM$(99),SC(99,2,2),IN$(99),P%(99)
1440 IN$ = P1$: GOSUB 2000: IF NOT (IN) THEN NR = NR +1:RC = NR:IN = NR:NM$(IN) = IN$: GOTO 1451
1450 PRINT D$"openmm7.hs,l128": PRINT D$"readmm7.hs,r"IN: INPUT NM$: FOR I = 0 TO 2: FOR J = 0 TO 2: INPUT SC(IN,I,J): NEXT : NEXT : PRINT D$"close"
1451 IF S1 <S2 THEN SC(IN,GS,1) = SC(IN,GS,1) +1
1452 SC(IN,GS,2) = SC(IN,GS,2) +S1
1453 IF S1 = >S2 THEN SC(IN,GS,0) = SC(IN,GS,0) +1
1454 PRINT D$"open mm7.hs,l128": PRINT D$"write mm7.hs,r0": PRINT NR: PRINT D$"write mm7.hs,r"IN: PRINT IN$: FOR I = 0 TO 2: FOR J = 0 TO 2: PRINT SC(IN,I,J): NEXT : NEXT : PRINT D$"close"
1460 IN$ = P2$: GOSUB 2000: IF NOT (IN) THEN NR = NR +1:RC = NR:IN = NR:NM$(IN) = IN$: FOR I = 0 TO 2: FOR J = 0 TO 2:SC(IN,I,J) = 0: NEXT : NEXT : GOTO 1471
1470 PRINT D$"open mm7.hs,l128": PRINT D$"read mm7.hs,r"IN: INPUT NM$: FOR I = 0 TO 2: FOR J = 0 TO 2: INPUT SC(IN,I,J): NEXT : NEXT : PRINT D$"close"
1471 IF S2 <S1 THEN SC(IN,GS,1) = SC(IN,GS,1) +1
1472 SC(IN,GS,2) = SC(IN,GS,2) +S2
1473 IF S2 = >S1 THEN SC(IN,GS,0) = SC(IN,GS,0) +1
1474 PRINT D$"open mm7.hs,l128": PRINT D$"write mm7.hs,r0": PRINT NR: PRINT D$"write mm7.hs,r"IN: PRINT IN$: FOR I = 0 TO 2: FOR J = 0 TO 2: PRINT SC(IN,I,J): NEXT : NEXT : PRINT D$"close"
1480 GOTO 1040
1999 REM high score stuff
2000 IN = 0: FOR I = 1 TO NR: IF NM$(I) = IN$ THEN IN = I:I = NR
2010 NEXT : RETURN
2500 :
2505 PRINT CHR$(20): PRINT CHR$(12): VTAB 1: HTAB 10: PRINT "The Best Quadrilators"
2506 VTAB 24: HTAB 9: PRINT "Press a key to continue": POKE 35,23
2510 PRINT D$"open mm7.hs,l128": PRINT D$"read mm7.hs,r0": INPUT NR: IF NOT NR THEN 2700
4010 PRINT " Play tiles to overlap as many squares as possible. ALL overlapping squares must match colors. You get 1 point for"
4015 PRINT "overlapping one square, 2 for two, 4 forthree and 16 for all four. These values are increased as the game progresses."
4020 PRINT " To move, use:": HTAB 14: PRINT " A & 8": HTAB 14: PRINT " % # % # 4 6": HTAB 14: PRINT " Z or $ or 2"
4030 PRINT " Move up and down to highlight a piece at the right; move left to put it onto the board. If you move a piece all the way right, you can pick a new piece."
4044 PRINT : PRINT " When the piece is where you want it, press SPACE to drop it. If you get a beep, you can't drop it there!"
4045 PRINT : PRINT " You may pass any turn by pressing 'P.' The game ends when both players pass consecutively."
4046 VTAB 24: HTAB 8: PRINT "Press any key to continue."
4050 POKE 49168,0
4060 IF PEEK(49152) <128 THEN 4060
4070 POKE 49168,0: GOSUB 6000: GOTO 90
4999 REM DRAW THE BOARD
5000 RETURN
5999 REM TITLE PAGE
6000 GOSUB 100: PRINT CHR$(20) CHR$(12): HTAB 5: VTAB 1: PRINT "[";: FOR I = 1 TO 30: PRINT "\";: NEXT : PRINT "]"
6001 FOR I = 2 TO 21: VTAB I: HTAB 5: PRINT "}";: HTAB 36: PRINT "^";: NEXT
6002 VTAB 22: HTAB 5: PRINT "{";: FOR I = 1 TO 30: PRINT "`";: NEXT : PRINT "_"